package JAVACORE_TRAINING.OOPS_CONCEPTS.ARRAY_AND_COLLECTIONS.DYNAMIC_ARRAYS.SAMPLES;

import java.util.ArrayList;
import java.util.List;

public class Commons {

	static List<Double> BUBBLESORT(List<Double> lisD) {
		List<Double> lisTemp = new ArrayList<>(lisD);
		// lisTemp.addAll(lisD);
		for (int i = 0; i < lisTemp.size(); i++) {
			for (int j = i + 1; j < lisTemp.size(); j++) {
				if (lisTemp.get(i) > lisTemp.get(j)) {
					Double dTemp = lisTemp.get(i);
					lisTemp.set(i, lisTemp.get(j));
					lisTemp.set(j, dTemp);
				}
			}
		}
		return lisTemp;
	}

	static List<Double> INSERTIONSORT(List<Double> lisD) {
		List<Double> lisTemp = new ArrayList<>(lisD);
		int i, j;
		Double dValue;
		for (j = 1; j < lisTemp.size(); j++) {
			dValue = lisTemp.get(j);
			for (i = j - 1; (i >= 0) && (lisTemp.get(i) < dValue); i--)
				lisTemp.set(i + 1, lisTemp.get(i));
			lisTemp.set(i + 1, dValue);
		}
		return lisTemp;
	}
	
	static List<Double> SELECTIONSORT(List<Double> lisDouble){
		List<Double> lisTemp = new ArrayList<>(lisDouble);
		 int i, j, first;
		 Double dValue;
	        for (i = lisTemp.size() - 1; i > 0; i--) {
	            first = 0; 
	            for (j = 1; j <= i; j++) 
	            {
	                if (lisTemp.get(j) < lisTemp.get(first))
	                    first = j;	              
	            }
	            dValue = lisTemp.get(first); 
	            lisTemp.set(first, lisTemp.get(i));
	            lisTemp.set(i, dValue);
	        }
	        return lisTemp;
	}
}
